FIG. 1 (Prior Art) is a simplified diagram of an interactive television system 100. System 100 includes a receiver unit 101, a receiving antenna 111, and a remote control unit 102. A viewer uses the remote control unit 102 to control the receiver unit 101 and/or to interact with interactive television content via the receiver unit 101. A video link 103 couples receiver unit 101 to an ordinary analog television set 104 so that the receiver unit can use the screen of the television set as a display device. The receiver unit 101 receives broadcast television video 105 on receiving antenna 111 and displays it as television video 106 on the screen of the television set 104.
In interactive television, information 107 from an information resource 108 is displayed along with television video 106 in a synchronized fashion. When the information 107 is to be displayed at a particular point in the television video, a communication called a xe2x80x9ctriggerxe2x80x9d 109 is broadcast along with the television video 105 and is received on receiving antenna 111. Trigger 109 includes a Uniform Resource Identifier (URI) that identifies the information resource 108. Receiver unit 101 uses this URI to retrieve the information resource 108 from the Internet 110. Receiver unit 101 then displays the information 107 from the information resource 108 along with the television video 106 to provide an enhanced television viewing experience.
Each frame of the television video 106 includes two fields of 262.5 horizontal scan lines each in accordance with the National Television Standards Committee (NTSC) broadcast television format standard. The first twenty-one scan lines of each frame are commonly referred to as the xe2x80x9cvertical blanking intervalxe2x80x9d (VBI lines). This interval is used to synchronize television receiver electronics and to return the electron beam of the television to the top of the screen among other things. The electron beam is therefore disabled (i.e. xe2x80x9cblankedxe2x80x9d) during the scan time of the first twenty-one scan lines so that the electron beam does not scribe a visible line from the bottom of the screen to the top of the screen when it is being returned to the top of the screen. The entire vertical blanking interval is, however, generally not required for vertical synchronization and vertical beam retrace. Only VBI lines 1-9 of a field are generally required. The other twelve lines 10-21 of the field are therefore available for the communication of other information.
VBI line 21, for example, provides a low speed communication sub-channel. The Federal Communications Commission (FCC) mandates that part of this sub-channel be reserved for closed captioning services as specified by EIA-608. Text subtitles are encoded into this VBI line 21 sub-channel such that a television receiver that receives the signal can decode the information encoded into VBI line 21 and display it as a text subtitle along with the television video to assist the hearing impaired. Spare bandwidth available in this VBI line 21 sub-channel after the encoding of the closed captioning information may be used to transport the interactive television triggers such as trigger 109 to the receiver unit 101 at an appropriate time with respect to the broadcast television video 105.
FIG. 2 illustrates a problem associated with the use of the VBI line 21 sub-channel for the transport of trigger 109. Trigger 109 is desired to be transmitted to receiver unit 101 at time 200 with respect to broadcast television video 105. There is in this example, however, particularly heavy closed captioning use of the VBI line 21 sub-channel during period 201. Accordingly, there is not adequate bandwidth left for the communication of the trigger 109 at time 200.
A conventional method of solving this problem involves sending the trigger 109 beforehand (out of synchronization) with respect the point in the associated broadcast television video 105 where the trigger 109 is to be executed. In the example illustrated, trigger 109 is sent via the VBI line 21 sub-channel at time 202 before period 201. Receiver unit 101, rather than executing trigger 109 immediately upon receipt, executes a script on the information resource 108 to which the trigger 109 is addressed. The script involves a delay loop that delays the execution of trigger 109 until time 200.
The use of such a delay loop, however, introduces several complexities. The magnitude of the delay of such a delay loop is generally somewhat unrepeatable and difficult to control. The magnitude of the delay may, for example, vary from receiver unit to receiver unit due to hardware differences. The magnitude of the delay may also be affected by the particular software processes running on a receiver unit. Moreover, the coding required to realize such a delay loop involves effort on the part of the author of the interactive content and this is undesirable. Solutions to one or more of these problems are desired.
Moreover, in a current interactive television implementation, if trigger 109 executes in the context of a channel, and the viewer then changes channels to a different channel, and the viewer then changes channels back, the trigger is not reexecuted automatically. If, for example, trigger 109 initially caused stock ticker tape information 107 to be displayed along with video of a given channel, and if the viewer switched channels and then switched back, the stock ticker tape information 107 would not reappear because its trigger 109 would not automatically be reexecuted. A solution to this problem is also desired.
In a first aspect of the invention, a trigger includes a time attribute indicative of a time in the future when the trigger is to be executed. Providing a time in the future when the trigger is to be executed allows the trigger to be sent in advance when there is adequate transport bandwidth to transport the trigger to the receiver unit. The receiver unit receives the trigger but knows from the future time attribute that the trigger is not to be executed yet, but rather is to be executed at the indicated future time. The receiver unit therefore waits until the indicated future time to execute the trigger. This future time attribute therefore eliminates the need for the script and delay loop described above.
In a second aspect of the invention, a trigger includes a time attribute indicative of a particular frame when the trigger is to be executed. In one embodiment, each frame of video is numbered with a frame number that is embedded in the video in accordance with a standard. The receiver unit monitors these frame numbers (or otherwise keeps track of the number of the current frame) and waits to execute the trigger until the frame identified by the time attribute of the trigger has been received. This future time attribute therefore eliminates the need for the script and delay loop described above.
In a third aspect of the invention, a receiver unit receives a trigger with an attribute indicating that the trigger is to be executed at some time in the future or some frame in the future. The receiver unit determines whether the receiver unit has enough time to retrieve an information resource identified by the trigger (this may involve establishing a connection to the Internet and retrieving the information resource from the Internet). If the receiver unit determines that there is enough time, then the receiver unit pre-fetches the information resource so that it is available at the future time or future frame when the trigger is to be executed. Triggers are therefore sent well before they are to be executed so that receiver units will pre-fetch associated information resources. Such pre-fetching is used in some embodiments to have receiver units access the Internet at off-peak (low cost) times and retrieve information resources needed for subsequent interactive television viewing at peak (high cost) times.
In a fourth aspect of the invention, multiple triggers to the same associated information resource on the Internet are all sent indicating the same future time or future frame for execution so that if a receiver unit for some reason does not receive the earlier triggers (the earlier triggers are provided to cause the receiver unit to prefetch the associated information resource), then the receiver unit will at least receive the last trigger and be able to execute it (this will generally require prompt retrieval of the associated information resource from the Internet).
In a fifth aspect of the invention, a trigger has a time attribute which provides a time up until which the trigger is valid for presentation (i.e., a xe2x80x9clife spanxe2x80x9d for the trigger). Providing the life span time attribute allows a trigger to be executed in the context of a channel, allows the viewer to change channels and then change back, and allows the receiver unit automatically to reexecute the trigger if it is still valid (has not expired).
Future times of trigger execution, life span starting times and/or life span ending times can be expressed using multiple different characters and codes. Such times can be designated as absolute times and/or as relative times. Such times can be designated in terms of wall-clock time and/or media time base time. A receiver unit need not receive media encoded with time stamps in order to support media time base time attribute values, rather the receiver unit can keep track of the media time base by monitoring the progress of the media (for example, by maintaining a count of successive frames of video media as successive frames of the video media are received).
Triggers with time attributes can synchronize events with respect to information other than video. Triggers with time attributes can, for example, synchronize events with respect to audio. Such triggers can, for example, be transmitted via radio transmission along with audio information so as to synchronize events with respect to the audio as it is received by radio receiver units and/or to cause retrieval of information or prefetching of information by radio receiver units.
Other aspects of the invention and other embodiments are described in the detailed description below. This summary does not purport to define the invention. The invention is defined by the claims.